/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/

/**
 * 根据示例代码，将异步生成字符串的方法封装成Promise
 * @param str
 * @returns {Promise<unknown>}
 */
function foo (str) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(str)
    }, 10)
  })
}
// 使用promise的链式调用进行改造
foo('hello').then(response => {
  return foo(response + ' lagou')
}).then(response => {
  return foo(response + ' I ♥ U')
}).then(response => {
  console.log(response)
})
